package cn.myjerry.test.reflection;

/**
 * 测式各种类型的java.long.Class对象的获取方式
 * @author Jerry
 *
 */
@SuppressWarnings("all")
public class Demo01 {
	public static void main(String[] args) throws Exception {
		String path = "cn.myjerry.test.reflection.bean.User";
		Class<?> clazz = Class.forName(path);
		// 对象是标示或封装一些数据，一个类被加载后，JVM会创建一个对应类的Class对象，类的整个结构信息会放到对应的Class对象中。
		// 整个Class对象就像一面镜子一样，通过这面镜子我可以看到对应类的全部信息。
		System.out.println(clazz.hashCode());
		
		Class<?> clazz2 = Class.forName(path);	// 一个类只对应一个Class对象
		System.out.println(clazz2.hashCode());
		
		Class<?> strClazz = String.class;
		Class<?> strClass2 = path.getClass();
		System.out.println(strClazz == strClass2);

		int[] arr01 = new int[10];
		int[] arr02 = new int[20];
		int[][] arr03 = new int[20][10];
		double[] arr04 = new double[10];
		
		System.out.println(arr01.getClass().hashCode());
		System.out.println(arr02.getClass().hashCode());
		System.out.println(arr03.getClass().hashCode());
		System.out.println(arr04.getClass().hashCode());
		
	}
}
